﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Thor.Common;
using Thor.Domain;

namespace Thor.Domain.Configuration
{
    /// <summary>
    /// A repository that stores setting entities.
    /// </summary>
    public interface ISettingsRepository : IRepository
    {
        /// <summary>
        /// Inserts a new settings entity into the repository.
        /// </summary>
        /// <param name="settings"></param>
        void Insert(Settings settings);

        /// <summary>
        /// Updates a settings entity in the repository.
        /// </summary>
        /// <param name="settings"></param>
        void Update(Settings settings);

        /// <summary>
        /// Deletes a settings entity from the repository.
        /// </summary>
        /// <param name="settings"></param>
        void Delete(Settings settings);

        /// <summary>
        /// Retrieves a settings entity from the repository.
        /// </summary>
        /// <returns></returns>
        Settings Fetch();
    }
}
